home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / vcr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  19.8 KB  |  435 lines

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY  *
  4.  *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE    *
  5.  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR  *
  6.  *  PURPOSE.                                                               *
  7.  *                                                                         *
  8.  *  Copyright (c) 1993 - 1995 Microsoft Corporation.  All Rights Reserved. *
  9.  *                                                                         *
  10.  * File:  vcr.h                                                            *
  11.  * Title:           VCR-MCI Command Table Include File                     *
  12.  *                                                                         *
  13.  ***************************************************************************/
  14.  
  15. #ifndef __VCR_H
  16. #define __VCR_H
  17. #pragma option push -b
  18.  
  19. #ifdef __BORLANDC__
  20. #  include <pshpack8.h>
  21. #endif
  22.  
  23. /* string resource base for vcr device type */
  24. #define MCI_VCR_OFFSET                          1280
  25.  
  26. /* system MCI commands */
  27. #define MCI_LIST                                0x0878
  28. #define MCI_SETAUDIO                            0x0873
  29. #define MCI_SETVIDEO                            0x0876 
  30. #define MCI_SIGNAL                              0x0875
  31.  
  32. /* custom MCI commands for VCRs */
  33. #define MCI_MARK                                (MCI_USER_MESSAGES + 0)
  34. #define MCI_INDEX                               (MCI_USER_MESSAGES + 1)
  35. #define MCI_SETTUNER                            (MCI_USER_MESSAGES + 2)
  36. #define MCI_SETVCR                              (MCI_USER_MESSAGES + 3)
  37. #define MCI_SETTIMECODE                         (MCI_USER_MESSAGES + 4)
  38.  
  39. /* Test is appplicable to all commands */
  40. #define MCI_TEST                                0x00000020L
  41.  
  42. /* flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block */
  43. #define MCI_VCR_GETDEVCAPS_CAN_DETECT_LENGTH    0x00004001L
  44. #define MCI_VCR_GETDEVCAPS_SEEK_ACCURACY        0x00004002L
  45. #define MCI_VCR_GETDEVCAPS_HAS_CLOCK            0x00004003L
  46. #define MCI_VCR_GETDEVCAPS_CAN_REVERSE          0x00004004L
  47. #define MCI_VCR_GETDEVCAPS_NUMBER_OF_MARKS      0x00004005L
  48. #define MCI_VCR_GETDEVCAPS_CAN_TEST             0x00004006L
  49. #define MCI_VCR_GETDEVCAPS_CAN_PREROLL          0x00004007L
  50. #define MCI_VCR_GETDEVCAPS_CAN_PREVIEW          0x00004008L
  51. #define MCI_VCR_GETDEVCAPS_CAN_MONITOR_SOURCES  0x00004009L
  52. #define MCI_VCR_GETDEVCAPS_HAS_TIMECODE         0x0000400AL
  53. #define MCI_VCR_GETDEVCAPS_CAN_FREEZE           0x0000401BL
  54. #define MCI_VCR_GETDEVCAPS_CLOCK_INCREMENT_RATE 0x0000401CL
  55.  
  56. /* flags for dwFlags parameter of MCI_INFO command message */
  57. #define MCI_VCR_INFO_VERSION                    0x00010000L
  58.  
  59. /* flags for dwFlags parameter of MCI_PLAY command message */
  60. #define MCI_VCR_PLAY_REVERSE                    0x00010000L
  61. #define MCI_VCR_PLAY_AT                         0x00020000L
  62. #define MCI_VCR_PLAY_SCAN                       0x00040000L
  63.  
  64. /* flags for dwFlags parameter of MCI_RECORD command message */
  65. #define MCI_VCR_RECORD_INITIALIZE               0x00010000L
  66. #define MCI_VCR_RECORD_AT                       0x00020000L
  67. #define MCI_VCR_RECORD_PREVIEW                  0x00040000L
  68.  
  69. /* flags for dwFlags parameter of MCI_CUE command message */
  70. #define MCI_VCR_CUE_INPUT                       0x00010000L
  71. #define MCI_VCR_CUE_OUTPUT                      0x00020000L
  72. #define MCI_VCR_CUE_PREROLL                     0x00040000L
  73. #define MCI_VCR_CUE_REVERSE                     0x00080000L
  74.  
  75. /* flags for dwFlags parameter of MCI_SEEK command message */
  76. #define MCI_VCR_SEEK_REVERSE                    0x00010000L
  77. #define MCI_VCR_SEEK_MARK                       0x00020000L
  78. #define MCI_VCR_SEEK_AT                         0x00040000L
  79.                                                
  80. /* flags for dwFlags parameter of MCI_SETTUNER command message */
  81. #define MCI_VCR_SETTUNER_CHANNEL                0x00010000L
  82. #define MCI_VCR_SETTUNER_CHANNEL_UP             0x00020000L
  83. #define MCI_VCR_SETTUNER_CHANNEL_DOWN           0x00040000L
  84. #define MCI_VCR_SETTUNER_CHANNEL_SEEK_UP        0x00080000L
  85. #define MCI_VCR_SETTUNER_CHANNEL_SEEK_DOWN      0x00100000L
  86. #define MCI_VCR_SETTUNER_NUMBER                 0x00200000L
  87.  
  88. /* flags for dwFlags parameter of MCI_SET command message */
  89. #define MCI_VCR_SET_TIME_MODE                   0x00010000L
  90. #define MCI_VCR_SET_POWER                       0x00020000L
  91. #define MCI_VCR_SET_RECORD_FORMAT               0x00040000L
  92. #define MCI_VCR_SET_COUNTER_FORMAT              0x00080000L
  93. #define MCI_VCR_SET_INDEX                       0x00100000L
  94. #define MCI_VCR_SET_ASSEMBLE_RECORD             0x00200000L
  95. #define MCI_VCR_SET_TRACKING                    0x00400000L
  96. #define MCI_VCR_SET_SPEED                       0x00800000L
  97. #define MCI_VCR_SET_TAPE_LENGTH                 0x01000000L
  98. #define MCI_VCR_SET_COUNTER_VALUE               0x02000000L
  99. #define MCI_VCR_SET_CLOCK                       0x04000000L
  100. #define MCI_VCR_SET_PAUSE_TIMEOUT               0x08000000L
  101. #define MCI_VCR_SET_PREROLL_DURATION            0x10000000L
  102. #define MCI_VCR_SET_POSTROLL_DURATION           0x20000000L
  103.  
  104. /* flags for dwItem parameter of MCI_SETTIMECODE commmand message */
  105. #define MCI_VCR_SETTIMECODE_RECORD              0x00010000L
  106.  
  107. /* flags for dwItem field of MCI_STATUS_PARMS parameter block */
  108. #define MCI_VCR_STATUS_FRAME_RATE               0x00004001L /* Frame rate   */
  109. #define MCI_VCR_STATUS_SPEED                    0x00004002L /* Speed        */
  110. #define MCI_VCR_STATUS_MEDIA_TYPE               0x00004003L
  111. #define MCI_VCR_STATUS_RECORD_FORMAT            0x00004004L
  112. #define MCI_VCR_STATUS_PLAY_FORMAT              0x00004005L
  113. #define MCI_VCR_STATUS_AUDIO_SOURCE             0x00004006L
  114. #define MCI_VCR_STATUS_AUDIO_SOURCE_NUMBER      0x00004007L
  115. #define MCI_VCR_STATUS_VIDEO_SOURCE             0x00004008L
  116. #define MCI_VCR_STATUS_VIDEO_SOURCE_NUMBER      0x00004009L
  117. #define MCI_VCR_STATUS_AUDIO_MONITOR            0x0000400AL
  118. #define MCI_VCR_STATUS_AUDIO_MONITOR_NUMBER     0x0000400BL
  119. #define MCI_VCR_STATUS_VIDEO_MONITOR            0x0000400CL
  120. #define MCI_VCR_STATUS_VIDEO_MONITOR_NUMBER     0x0000400DL
  121. #define MCI_VCR_STATUS_INDEX_ON                 0x0000400EL
  122. #define MCI_VCR_STATUS_INDEX                    0x0000400FL
  123. #define MCI_VCR_STATUS_COUNTER_FORMAT           0x00004010L
  124. #define MCI_VCR_STATUS_COUNTER_RESOLUTION       0x00004011L
  125. #define MCI_VCR_STATUS_TIMECODE_TYPE            0x00004012L
  126. #define MCI_VCR_STATUS_COUNTER_VALUE            0x00004013L
  127. #define MCI_VCR_STATUS_TUNER_CHANNEL            0x00004014L
  128. #define MCI_VCR_STATUS_WRITE_PROTECTED          0x00004015L
  129. #define MCI_VCR_STATUS_TIMECODE_RECORD          0x00004016L
  130. #define MCI_VCR_STATUS_VIDEO_RECORD             0x00004017L
  131. #define MCI_VCR_STATUS_AUDIO_RECORD             0x00004018L
  132. #define MCI_VCR_STATUS_TIME_TYPE                0x00004019L
  133. #define MCI_VCR_STATUS_TIME_MODE                0x0000401AL
  134. #define MCI_VCR_STATUS_POWER_ON                 0x0000401BL
  135. #define MCI_VCR_STATUS_CLOCK                    0x0000401CL
  136. #define MCI_VCR_STATUS_ASSEMBLE_RECORD          0x0000401DL
  137. #define MCI_VCR_STATUS_TIMECODE_PRESENT         0x0000401EL
  138. #define MCI_VCR_STATUS_NUMBER_OF_VIDEO_TRACKS   0x0000401FL
  139. #define MCI_VCR_STATUS_NUMBER_OF_AUDIO_TRACKS   0x00004020L
  140. #define MCI_VCR_STATUS_CLOCK_ID                 0x00004021L
  141. #define MCI_VCR_STATUS_PAUSE_TIMEOUT            0x00004022L
  142. #define MCI_VCR_STATUS_PREROLL_DURATION         0x00004023L
  143. #define MCI_VCR_STATUS_POSTROLL_DURATION        0x00004024L
  144. #define MCI_VCR_STATUS_VIDEO                    0x00004025L
  145. #define MCI_VCR_STATUS_AUDIO                    0x00004026L
  146.  
  147. #define MCI_VCR_STATUS_NUMBER                   0x00080000L
  148.  
  149. /* flags for dwFlags parameter of MCI_ESCAPE command message */
  150. #define MCI_VCR_ESCAPE_STRING                   0x00000100L
  151.  
  152. /* flags for dwFlags parameter of MCI_LIST command message */
  153. #define MCI_VCR_LIST_VIDEO_SOURCE               0x00010000L
  154. #define MCI_VCR_LIST_AUDIO_SOURCE               0x00020000L
  155. #define MCI_VCR_LIST_COUNT                      0x00040000L
  156. #define MCI_VCR_LIST_NUMBER                     0x00080000L
  157.  
  158. /* flags for dwFlags parameter of MCI_MARK command message */
  159. #define MCI_VCR_MARK_WRITE                      0x00010000L
  160. #define MCI_VCR_MARK_ERASE                      0x00020000L
  161.  
  162. /* flags for dwFlags parameter for MCI_SETAUDIO command message */
  163. #define MCI_VCR_SETAUDIO_RECORD                 0x00010000L
  164. #define MCI_VCR_SETAUDIO_SOURCE                 0x00020000L
  165. #define MCI_VCR_SETAUDIO_MONITOR                0x00040000L
  166. #define MCI_VCR_SETAUDIO_TO                     0x00200000L
  167. #define MCI_VCR_SETAUDIO_NUMBER                 0x00400000L
  168.  
  169. /* flags for dwFlags parameter for MCI_SETVIDEO command message */
  170. #define MCI_VCR_SETVIDEO_RECORD                 0x00010000L
  171. #define MCI_VCR_SETVIDEO_SOURCE                 0x00020000L
  172. #define MCI_VCR_SETVIDEO_MONITOR                0x00040000L
  173. #define MCI_VCR_SETVIDEO_TO                     0x00100000L
  174. #define MCI_VCR_SETVIDEO_NUMBER                 0x00200000L
  175.  
  176. /* The following is the function digitalvideo drivers must use 
  177.  * to signal when a frame marked by the SIGNAL command has been rendered:
  178.  *
  179.  *  SEND_VCRSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos )
  180.  *
  181.  * The following is a description of the parameters:
  182.  *
  183.  *  dwFlags    - the dwFlags parameter passed when the signal was set
  184.  *  dwCallback - the dwCallback value from the MCI_VCR_SIGNAL_PARMS struct
  185.  *               used to set the signal
  186.  *  hDriver    - the handle assigned to the driver by MMSYSTEM when the 
  187.  *               device was opened
  188.  *  wDeviceID  - the device ID
  189.  *  dwUser     - the dwUserParm value from the MCI_VCR_SIGNAL_PARMS struct
  190.  *               used to set the signal
  191.  *  dwPos      - the position at which the signal was sent, in the current
  192.  *               time format.
  193.  *
  194.  * The window indicated by the handle in the dwCallback field is notified 
  195.  * by means of a Windows message with the following form:
  196.  *
  197.  * msg    = MM_MCISIGNAL
  198.  * wParam = wDeviceID of the sending driver 
  199.  * lParam = the uservalue specified or the position the signal was sent
  200.  *          at; the latter if the MCI_VCR_SIGNAL_POSITION flag was set 
  201.  *          in the dwFlags parameter when the signal was created.
  202.  */
  203.  
  204. #define SEND_VCRSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos ) \
  205.   DriverCallback( (dwCallback), DCB_WINDOW, (HANDLE)(wDeviceID), MM_MCISIGNAL,\
  206.   hDriver, ((dwFlags) & MCI_VCR_SIGNAL_POSITION) ? (dwPos):(dwUser),\
  207.   ((dwFlags) & MCI_VCR_SIGNAL_POSITION) ? (dwUser):(dwPos))
  208.  
  209. /* Window message for signal notification */
  210. #define MM_MCISIGNAL                            0x3CB
  211.  
  212. /* flags for dwFlags parameter of MCI_SIGNAL command message */
  213. #define MCI_VCR_SIGNAL_AT                       0x00010000L
  214. #define MCI_VCR_SIGNAL_EVERY                    0x00020000L
  215. #define MCI_VCR_SIGNAL_USERVAL                  0x00040000L
  216. #define MCI_VCR_SIGNAL_CANCEL                   0x00080000L
  217. #define MCI_VCR_SIGNAL_POSITION                 0x00100000L
  218.  
  219. /* flags for dwFlags parameter of MCI_STEP command message */
  220. #define MCI_VCR_STEP_FRAMES                     0x00010000L
  221. #define MCI_VCR_STEP_REVERSE                    0x00020000L
  222.  
  223. /* flags for dwFlags parameter of MCI_FREEZE command message */
  224. #define MCI_VCR_FREEZE_INPUT                    0x00010000L
  225. #define MCI_VCR_FREEZE_OUTPUT                   0x00020000L
  226. #define MCI_VCR_FREEZE_FIELD                    0x00040000L
  227. #define MCI_VCR_FREEZE_FRAME                    0x00080000L
  228.  
  229. /* flags for dwFlags parameter of MCI_UNFREEZE command message */
  230. #define MCI_VCR_UNFREEZE_INPUT                  0x00010000L
  231. #define MCI_VCR_UNFREEZE_OUTPUT                 0x00020000L
  232.  
  233. /* string resource values for vcr media types */
  234. #define MCI_VCR_MEDIA_8MM                       (MCI_VCR_OFFSET + 1)
  235. #define MCI_VCR_MEDIA_HI8                       (MCI_VCR_OFFSET + 2)
  236. #define MCI_VCR_MEDIA_VHS                       (MCI_VCR_OFFSET + 3)
  237. #define MCI_VCR_MEDIA_SVHS                      (MCI_VCR_OFFSET + 4)
  238. #define MCI_VCR_MEDIA_BETA                      (MCI_VCR_OFFSET + 5)
  239. #define MCI_VCR_MEDIA_EDBETA                    (MCI_VCR_OFFSET + 6)
  240. #define MCI_VCR_MEDIA_OTHER                     (MCI_VCR_OFFSET + 7)
  241.  
  242. /* string resource values for vcr play/record formats */
  243. #define MCI_VCR_FORMAT_SP                       (MCI_VCR_OFFSET + 8)
  244. #define MCI_VCR_FORMAT_LP                       (MCI_VCR_OFFSET + 9)
  245. #define MCI_VCR_FORMAT_EP                       (MCI_VCR_OFFSET + 10)
  246. #define MCI_VCR_FORMAT_OTHER                    (MCI_VCR_OFFSET + 11)
  247.  
  248. /* string resource values for timecode types */
  249. #define MCI_VCR_TIME_TIMECODE                   (MCI_VCR_OFFSET + 12)
  250. #define MCI_VCR_TIME_COUNTER                    (MCI_VCR_OFFSET + 13)
  251. #define MCI_VCR_TIME_DETECT                     (MCI_VCR_OFFSET + 14)
  252.  
  253. /* string resource values for src types */
  254. #define MCI_VCR_SRC_TYPE_TUNER                  (MCI_VCR_OFFSET + 15)
  255. #define MCI_VCR_SRC_TYPE_LINE                   (MCI_VCR_OFFSET + 16)
  256. #define MCI_VCR_SRC_TYPE_SVIDEO                 (MCI_VCR_OFFSET + 17)
  257. #define MCI_VCR_SRC_TYPE_RGB                    (MCI_VCR_OFFSET + 18)
  258. #define MCI_VCR_SRC_TYPE_AUX                    (MCI_VCR_OFFSET + 19)
  259. #define MCI_VCR_SRC_TYPE_GENERIC                (MCI_VCR_OFFSET + 20)
  260. #define MCI_VCR_SRC_TYPE_MUTE                   (MCI_VCR_OFFSET + 21)
  261. #define MCI_VCR_SRC_TYPE_OUTPUT                 (MCI_VCR_OFFSET + 22)
  262.  
  263. /* string resource values for vcr counters */
  264. #define MCI_VCR_INDEX_TIMECODE                  (MCI_VCR_OFFSET + 23)         
  265. #define MCI_VCR_INDEX_COUNTER                   (MCI_VCR_OFFSET + 24)   
  266. #define MCI_VCR_INDEX_DATE                      (MCI_VCR_OFFSET + 25)
  267. #define MCI_VCR_INDEX_TIME                      (MCI_VCR_OFFSET + 26)
  268.  
  269. /* string resources for timecode type and counter resolution */
  270. #define MCI_VCR_COUNTER_RES_SECONDS             (MCI_VCR_OFFSET + 27)            
  271. #define MCI_VCR_COUNTER_RES_FRAMES              (MCI_VCR_OFFSET + 28)
  272.  
  273. #define MCI_VCR_TIMECODE_TYPE_SMPTE             (MCI_VCR_OFFSET + 29)
  274. #define MCI_VCR_TIMECODE_TYPE_SMPTE_DROP        (MCI_VCR_OFFSET + 30)
  275. #define MCI_VCR_TIMECODE_TYPE_OTHER             (MCI_VCR_OFFSET + 31)
  276. #define MCI_VCR_TIMECODE_TYPE_NONE              (MCI_VCR_OFFSET + 32)
  277.  
  278. #define MCI_VCR_PLUS                            (MCI_VCR_OFFSET + 33)
  279. #define MCI_VCR_MINUS                           (MCI_VCR_OFFSET + 34)
  280. #define MCI_VCR_RESET                           (MCI_VCR_OFFSET + 35)
  281.  
  282. #ifndef RC_INVOKED
  283.  
  284. /* parameter block for MCI_SEEK command message */
  285. typedef struct tagMCI_VCR_SEEK_PARMS {
  286.     DWORD   dwCallback;
  287.     DWORD   dwTo;
  288.     DWORD   dwMark;
  289.     DWORD   dwAt;
  290. } MCI_VCR_SEEK_PARMS;
  291. typedef MCI_VCR_SEEK_PARMS FAR *LPMCI_VCR_SEEK_PARMS;
  292.  
  293. /* parameter block for MCI_SET command message */
  294. typedef struct tagMCI_VCR_SET_PARMS {
  295.     DWORD   dwCallback;
  296.     DWORD   dwTimeFormat;
  297.     DWORD   dwAudio;
  298.     DWORD   dwTimeMode;
  299.     DWORD   dwRecordFormat;
  300.     DWORD   dwCounterFormat;
  301.     DWORD   dwIndex;
  302.     DWORD   dwTracking;
  303.     DWORD   dwSpeed;
  304.     DWORD   dwLength;
  305.     DWORD   dwCounter;
  306.     DWORD   dwClock;
  307.     DWORD   dwPauseTimeout;
  308.     DWORD   dwPrerollDuration;
  309.     DWORD   dwPostrollDuration;
  310. } MCI_VCR_SET_PARMS;
  311. typedef MCI_VCR_SET_PARMS FAR *LPMCI_VCR_SET_PARMS;
  312.  
  313. /* parameter block for MCI_VCR_SETTUNER command message */
  314. typedef struct tagMCI_VCR_SETTUNER_PARMS {
  315.     DWORD   dwCallback;
  316.     DWORD   dwChannel;
  317.     DWORD   dwNumber;
  318. } MCI_VCR_SETTUNER_PARMS;
  319. typedef MCI_VCR_SETTUNER_PARMS FAR *LPMCI_VCR_SETTUNER_PARMS;
  320.  
  321. /* parameter block for MCI_ESCAPE command message */
  322. typedef struct tagMCI_VCR_ESCAPE_PARMS {
  323.     DWORD   dwCallback;
  324.     LPCSTR  lpstrCommand;
  325. } MCI_VCR_ESCAPE_PARMS;
  326. typedef MCI_VCR_ESCAPE_PARMS FAR *LPMCI_VCR_ESCAPE_PARMS;
  327.  
  328. /* parameter block for MCI_LIST command message */
  329. typedef struct tagMCI_VCR_LIST_PARMS {
  330.     DWORD   dwCallback;
  331.     DWORD   dwReturn;
  332.     DWORD   dwNumber;
  333. } MCI_VCR_LIST_PARMS;
  334. typedef MCI_VCR_LIST_PARMS FAR *LPMCI_VCR_LIST_PARMS;
  335.  
  336. /* parameter block for MCI_RECORD command message */
  337. typedef struct tagMCI_VCR_RECORD_PARMS {
  338.     DWORD   dwCallback;
  339.     DWORD   dwFrom;
  340.     DWORD   dwTo;
  341.     DWORD   dwAt;
  342. } MCI_VCR_RECORD_PARMS;
  343. typedef MCI_VCR_RECORD_PARMS FAR *LPMCI_VCR_RECORD_PARMS;
  344.  
  345. /* parameter block for MCI_PLAY command message */
  346. typedef struct tagMCI_VCR_PLAY_PARMS {
  347.     DWORD   dwCallback;
  348.     DWORD   dwFrom;
  349.     DWORD   dwTo;
  350.     DWORD   dwAt;
  351. } MCI_VCR_PLAY_PARMS;
  352. typedef MCI_VCR_PLAY_PARMS FAR *LPMCI_VCR_PLAY_PARMS;
  353.  
  354. /* parameter block for MCI_SETAUDIO command message */
  355. typedef struct tagMCI_VCR_SETAUDIO_PARMS {
  356.     DWORD   dwCallback;
  357.     DWORD   dwTrack;
  358.     DWORD   dwTo;
  359.     DWORD   dwNumber;
  360. } MCI_VCR_SETAUDIO_PARMS;
  361. typedef MCI_VCR_SETAUDIO_PARMS FAR *LPMCI_VCR_SETAUDIO_PARMS;
  362.  
  363. /* parameter block for MCI_SIGNAL command message */
  364. typedef struct tagMCI_VCR_SIGNAL_PARMS {
  365.     DWORD   dwCallback;
  366.     DWORD   dwPosition;
  367.     DWORD   dwPeriod;
  368.     DWORD   dwUserParm;
  369. } MCI_VCR_SIGNAL_PARMS;
  370. typedef MCI_VCR_SIGNAL_PARMS FAR * LPMCI_VCR_SIGNAL_PARMS;
  371.  
  372. /* parameter block for MCI_VCR_STATUS command message */
  373. typedef struct tagMCI_VCR_STATUS_PARMS {
  374.     DWORD   dwCallback;
  375.     DWORD   dwReturn;
  376.     DWORD   dwItem;
  377.     DWORD   dwTrack;
  378.     DWORD   dwNumber;
  379. } MCI_VCR_STATUS_PARMS;
  380. typedef MCI_VCR_STATUS_PARMS FAR * LPMCI_VCR_STATUS_PARMS;
  381.  
  382. /* parameter block for MCI_SETVIDEO command message */
  383. typedef struct tagMCI_VCR_SETVIDEO_PARMS {
  384.     DWORD   dwCallback;
  385.     DWORD   dwTrack;
  386.     DWORD   dwTo;
  387.     DWORD   dwNumber;
  388. } MCI_VCR_SETVIDEO_PARMS;
  389. typedef MCI_VCR_SETVIDEO_PARMS FAR *LPMCI_VCR_SETVIDEO_PARMS;
  390.  
  391. /* parameter block for MCI_STEP command message */
  392. typedef struct tagMCI_VCR_STEP_PARMS {
  393.     DWORD   dwCallback;
  394.     DWORD   dwFrames;
  395. } MCI_VCR_STEP_PARMS;
  396. typedef MCI_VCR_STEP_PARMS FAR *LPMCI_VCR_STEP_PARMS;
  397.  
  398. /* parameter block for MCI_CUE command message */
  399. typedef struct tagMCI_VCR_CUE_PARMS {
  400.     DWORD   dwCallback;
  401.     DWORD   dwFrom;
  402.     DWORD   dwTo;
  403. } MCI_VCR_CUE_PARMS;
  404. typedef MCI_VCR_CUE_PARMS FAR *LPMCI_VCR_CUE_PARMS;
  405.  
  406. #endif /* NOT RC_INVOKED */
  407.  
  408. /* VCR error codes */
  409. #define MCIERR_VCR_CANNOT_OPEN_COMM         (MCIERR_CUSTOM_DRIVER_BASE + 1)
  410. #define MCIERR_VCR_CANNOT_WRITE_COMM        (MCIERR_CUSTOM_DRIVER_BASE + 2)
  411. #define MCIERR_VCR_READ_TIMEOUT             (MCIERR_CUSTOM_DRIVER_BASE + 3)
  412. #define MCIERR_VCR_COMMAND_BUFFER_FULL      (MCIERR_CUSTOM_DRIVER_BASE + 4)
  413. #define MCIERR_VCR_COMMAND_CANCELLED        (MCIERR_CUSTOM_DRIVER_BASE + 5)
  414. #define MCIERR_VCR_POWER_OFF                (MCIERR_CUSTOM_DRIVER_BASE + 6)
  415. #define MCIERR_VCR_COMMAND_FAILED           (MCIERR_CUSTOM_DRIVER_BASE + 7)
  416. #define MCIERR_VCR_SEARCH                   (MCIERR_CUSTOM_DRIVER_BASE + 8)
  417. #define MCIERR_VCR_CONDITION                (MCIERR_CUSTOM_DRIVER_BASE + 9)
  418. #define MCIERR_VCR_CAMERA_MODE              (MCIERR_CUSTOM_DRIVER_BASE + 10)
  419. #define MCIERR_VCR_VCR_MODE                 (MCIERR_CUSTOM_DRIVER_BASE + 11)
  420. #define MCIERR_VCR_COUNTER_TYPE             (MCIERR_CUSTOM_DRIVER_BASE + 12)
  421. #define MCIERR_VCR_TUNER                    (MCIERR_CUSTOM_DRIVER_BASE + 13)
  422. #define MCIERR_VCR_EMERGENCY_STOP           (MCIERR_CUSTOM_DRIVER_BASE + 14)
  423. #define MCIERR_VCR_MEDIA_UNMOUNTED          (MCIERR_CUSTOM_DRIVER_BASE + 15)
  424. #define MCIERR_VCR_REGISTER                 (MCIERR_CUSTOM_DRIVER_BASE + 16)
  425. #define MCIERR_VCR_TRACK_FAILURE            (MCIERR_CUSTOM_DRIVER_BASE + 17)
  426. #define MCIERR_VCR_CUE_FAILED_FLAGS         (MCIERR_CUSTOM_DRIVER_BASE + 18)
  427. #define MCIERR_VCR_ISWRITEPROTECTED         (MCIERR_CUSTOM_DRIVER_BASE + 19)
  428.  
  429. #ifdef __BORLANDC__
  430. #  include <poppack.h>
  431. #endif
  432.  
  433. #pragma option pop
  434. #endif /* __VCR_H */
  435.